namespace B.S.NewMedical.Api.Read.DTOS
{
    /// <summary>
    /// 用户DTO
    /// </summary>
    public class UserDto
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 用户名
        /// </summary>
        public required string Username { get; set; }

        /// <summary>
        /// 用户姓名
        /// </summary>
        public required string UserName { get; set; }

        /// <summary>
        /// 用户密码
        /// </summary>
        public required string UserPassword { get; set; }

        /// <summary>
        /// 性别 (0-未知, 1-男, 2-女)
        /// </summary>
        public int Gender { get; set; }

        /// <summary>
        /// 地址
        /// </summary>
        public string? Address { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public string? ContactPhone { get; set; }

        /// <summary>
        /// 拼音缩写
        /// </summary>
        public string? PinyinAbbreviation { get; set; }

        /// <summary>
        /// 类型 (1-医生, 2-护士, 3-管理员)
        /// </summary>
        public int Type { get; set; }

        /// <summary>
        /// 科室ID
        /// </summary>
        public int? DepartmentId { get; set; }

        /// <summary>
        /// 科室名称
        /// </summary>
        public string? DepartmentName { get; set; }

        /// <summary>
        /// 挂号费
        /// </summary>
        public decimal RegistrationFee { get; set; }

        /// <summary>
        /// 是否在线
        /// </summary>
        public bool IsOnline { get; set; }

        /// <summary>
        /// 是否删除
        /// </summary>
        public bool IsDeleted { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 更新时间
        /// </summary>
        public DateTime? UpdateTime { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }
    }

    /// <summary>
    /// 添加用户请求DTO
    /// </summary>
    public class AddUserRequestDto
    {
        /// <summary>
        /// 用户名
        /// </summary>
        public required string Username { get; set; }

        /// <summary>
        /// 用户姓名
        /// </summary>
        public required string UserName { get; set; }

        /// <summary>
        /// 用户密码
        /// </summary>
        public required string UserPassword { get; set; }

        /// <summary>
        /// 性别 (0-未知, 1-男, 2-女)
        /// </summary>
        public int Gender { get; set; }

        /// <summary>
        /// 地址
        /// </summary>
        public string? Address { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public string? ContactPhone { get; set; }

        /// <summary>
        /// 拼音缩写
        /// </summary>
        public string? PinyinAbbreviation { get; set; }

        /// <summary>
        /// 类型 (1-医生, 2-护士, 3-管理员)
        /// </summary>
        public int Type { get; set; }

        /// <summary>
        /// 科室ID
        /// </summary>
        public int? DepartmentId { get; set; }

        /// <summary>
        /// 挂号费
        /// </summary>
        public decimal RegistrationFee { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }
    }

    /// <summary>
    /// 更新用户请求DTO
    /// </summary>
    public class UpdateUserRequestDto
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 用户名
        /// </summary>
        public required string Username { get; set; }

        /// <summary>
        /// 用户姓名
        /// </summary>
        public required string UserName { get; set; }

        /// <summary>
        /// 用户密码
        /// </summary>
        public required string UserPassword { get; set; }

        /// <summary>
        /// 性别 (0-未知, 1-男, 2-女)
        /// </summary>
        public int Gender { get; set; }

        /// <summary>
        /// 地址
        /// </summary>
        public string? Address { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public string? ContactPhone { get; set; }

        /// <summary>
        /// 拼音缩写
        /// </summary>
        public string? PinyinAbbreviation { get; set; }

        /// <summary>
        /// 类型 (1-医生, 2-护士, 3-管理员)
        /// </summary>
        public int Type { get; set; }

        /// <summary>
        /// 科室ID
        /// </summary>
        public int? DepartmentId { get; set; }

        /// <summary>
        /// 挂号费
        /// </summary>
        public decimal RegistrationFee { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }
    }
} 